home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / pcboard / home20dm.zip / HOME20DM.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-09-22  |  21KB  |  1,032 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.3O (Encryption type II) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     String   STRING001
  29.     String   STRING002
  30.     String   STRING003
  31.     String   STRING004
  32.     String   STRING005
  33.     String   STRING006
  34.     String   STRING007
  35.     String   STRING008
  36.     String   STRING009
  37.     String   STRING010
  38.     String   STRING011
  39.     String   STRING012
  40.     String   STRING013
  41.     String   STRING014
  42.     String   STRING015
  43.     String   STRING016
  44.     String   STRING017
  45.     String   STRING018
  46.     String   STRING019
  47.     String   STRING020
  48.     String   STRING021
  49.     String   STRING022
  50.     String   STRING023
  51.     String   STRING024
  52.     String   STRING025
  53.     String   TSTRING026(15)
  54.     String   TSTRING027(15)
  55.     String   TSTRING028(15)
  56.     String   TSTRING029(15)
  57.     String   TSTRING030(15)
  58.  
  59. ;------------------------------------------------------------------------------
  60.  
  61.     Cls
  62.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X1F┐@X07"
  63.     PrintLn "@X10│                                                                             @X1F│@X07"
  64.     PrintLn "@X10│                                                                             @X1F│@X07"
  65.     PrintLn "@X10│                                                                             @X1F│@X07"
  66.     PrintLn "@X10│                                                                             @X1F│@X07"
  67.     PrintLn "@X10│                   @X7F┌────────────────────────────────────@X70┐@X10                    @X1F│@X07"
  68.     PrintLn "@X10│                   @X7F│ @X7C          Homework v2.0    @X70        │@X10                    @X1F│@X07"
  69.     PrintLn "@X10│                   @X7F│                                    @X70│@X10                    @X1F│@X07"
  70.     PrintLn "@X10│                   @X7F│ @X7C  Copyright John Gonski 1995-96    @X70│@X10                    @X1F│@X07"
  71.     PrintLn "@X10│                   @X7F└@X70────────────────────────────────────┘@X10                    @X1F│@X07"
  72.     PrintLn "@X10│                                                                             @X1F│@X07"
  73.     PrintLn "@X10│                            @X1F 1609 Holly Parkway                              @X1F│@X07"
  74.     PrintLn "@X10│                      @X1F Williamstown, New Jersey 08094                        @X1F│@X07"
  75.     PrintLn "@X10│                                                                             @X1F│@X07"
  76.     PrintLn "@X10│@X1B                             Today is @SYSDATE@                               @X1F│@X07"
  77.     PrintLn "@X10│                                                                             @X1F│@X07"
  78.     PrintLn "@X10│                                                                             @X1F│@X07"
  79.     PrintLn "@X10│                                                                             @X1F│@X07"
  80.     PrintLn "@X10│                                                                             @X1F│@X07"
  81.     PrintLn "@X10└@X1F─────────────────────────────────────────────────────────────────────────────┘@X07"
  82.     Newline
  83.     Wait
  84.     If ((Right(Date(), 2) > 97) || (Right(Date(), 2) < 96)) Then
  85.         Cls
  86.         PrintLn "@X0CThis demo program of v2.0 of the HOMEWORK program is too old.  Please register"
  87.         PrintLn "this program if you want to continue to use it."
  88.         Newline
  89.         PrintLn "Please contact me at @X0Fjohn.gonski@compudata.com @X0Cfor more information."
  90.         Newline
  91.         Wait
  92.         End
  93.     Endif
  94.     Print "@X0APlease wait..."
  95.     STRING001 = PPEPath() + "HOMEWORK.CFG"
  96.     STRING003 = PPEPath() + "TEACHERS.CFG"
  97.     INTEGER001 = ReadLine(STRING003, 1)
  98.     STRING004 = PPEPath() + "ERROR.LOG"
  99.     STRING025 = ReadLine(STRING001, 1)
  100.     STRING016 = ReadLine(STRING001, 2)
  101.     STRING013 = PPEPath() + "ACTIVITY.LOG"
  102.     STRING011 = "@X0EHomework for:  @X0A"
  103.     STRING012 = "@X0ELast updated:  @X0A"
  104.     STRING024 = "@X0ESubject:  @X0A"
  105.     STRING006 = Date()
  106.     INTEGER008 = 1
  107.     INTEGER009 = 2
  108.     STRING009 = "CRITICAL ERROR #"
  109.     STRING020 = "Entered Homework at " + TimeAp(Time()) + "."
  110.     Log STRING020, 0
  111.     FAppend 1, STRING013, 1, 2
  112.     FPutLn 1, "**************************************************"
  113.     FPutLn 1, Mixed(U_Name()), " entered at ", TimeAp(Time()), " on ", Date(), "."
  114.     FClose 1
  115.     While (INTEGER008 < 16) Do
  116.         TSTRING029(INTEGER008) = ReadLine(STRING003, INTEGER009)
  117.         Inc INTEGER009
  118.         TSTRING027(INTEGER008) = ReadLine(STRING003, INTEGER009)
  119.         Inc INTEGER009
  120.         TSTRING028(INTEGER008) = ReadLine(STRING003, INTEGER009)
  121.         Inc INTEGER009
  122.         TSTRING026(INTEGER008) = ReadLine(STRING003, INTEGER009)
  123.         Inc INTEGER009
  124.         TSTRING030(INTEGER008) = ReadLine(STRING003, INTEGER009)
  125.         Inc INTEGER008
  126.         Inc INTEGER009
  127.     EndWhile
  128.     STRING017 = ReadLine(STRING003, 76)
  129.     :LABEL001
  130.     Cls
  131.     If (CurSec() == STRING025) Then
  132.         Cls
  133.         PrintLn "@X0BHomework/DEMO Version 2.0"
  134.         Newlines 2
  135.         PrintLn "  @X0F2. - @X0EChange The Homework@X07"
  136.         PrintLn "  @X0F3. - @X0EQuit Back To BBS@X07"
  137.         AnsiPos 1, 3
  138.         Print "@X0E@X3E 1. - @X3FNormal Homework Program @X0E@X07"
  139.         :LABEL002
  140.         STRING010 = ""
  141.         While (STRING010 == "") Do
  142.             STRING010 = TInkey(0)
  143.         EndWhile
  144.         If ((Upper(STRING010) == "U") || (STRING010 == "UP")) Then
  145.             Goto LABEL003
  146.         ElseIf ((Upper(STRING010) == "D") || (STRING010 == "DOWN")) Then
  147.             Goto LABEL004
  148.         ElseIf (STRING010 == Chr(13)) Then
  149.             Goto LABEL005
  150.         ElseIf ((Upper(STRING010) == "Q") || (STRING010 == Chr(27))) Then
  151.             Goto LABEL033
  152.         Else
  153.             Goto LABEL002
  154.         Endif
  155.         FAppend 1, STRING004, 1, 2
  156.         FPutLn 1, STRING009, "1 at ", TimeAp(Time()), " on ", Date(), "."
  157.         FClose 1
  158.         Goto LABEL033
  159.         :LABEL003
  160.         INTEGER006 = GetY()
  161.         Select Case (INTEGER006)
  162.             Case 3
  163.                 AnsiPos 1, 3
  164.                 Print "  @X0F1. - @X0ENormal Homework Program @X07 "
  165.                 AnsiPos 1, 5
  166.                 Print "@X0E@X3E 3. - @X3FQuit Back To BBS        @X0E@X07"
  167.                 Goto LABEL002
  168.             Case 4
  169.                 AnsiPos 1, 4
  170.                 Print "  @X0F2. - @X0EChange The Homework     @X07 "
  171.                 AnsiPos 1, 3
  172.                 Print "@X0E@X3E 1. - @X3FNormal Homework Program @X0E@X07"
  173.                 Goto LABEL002
  174.             Case 5
  175.                 AnsiPos 1, 5
  176.                 Print "  @X0F3. - @X0EQuit Back To BBS        @X07 "
  177.                 AnsiPos 1, 4
  178.                 Print "@X0E@X3E 2. - @X3FChange The Homework     @X0E@X07"
  179.                 Goto LABEL002
  180.         End Select
  181.         FAppend 1, STRING004, 1, 2
  182.         FPutLn 1, STRING009, "2 at ", TimeAp(Time()), " on ", Date(), "."
  183.         FClose 1
  184.         Goto LABEL033
  185.         :LABEL004
  186.         INTEGER006 = GetY()
  187.         Select Case (INTEGER006)
  188.             Case 3
  189.                 AnsiPos 1, 3
  190.                 Print "  @X0F1. - @X0ENormal Homework Program @X07 "
  191.                 AnsiPos 1, 4
  192.                 Print "@X0E@X3E 2. - @X3FChange The Homework     @X0E@X07"
  193.                 Goto LABEL002
  194.             Case 4
  195.                 AnsiPos 1, 4
  196.                 Print "  @X0F2. - @X0EChange The Homework     @X07 "
  197.                 AnsiPos 1, 5
  198.                 Print "@X0E@X3E 3. - @X3FQuit Back To BBS        @X0E@X07"
  199.                 Goto LABEL002
  200.             Case 5
  201.                 AnsiPos 1, 5
  202.                 Print "  @X0F3. - @X0EQuit Back To BBS        @X07 "
  203.                 AnsiPos 1, 3
  204.                 Print "@X0E@X3E 1. - @X3FNormal Homework Program @X0E@X07"
  205.                 Goto LABEL002
  206.         End Select
  207.         FAppend 1, STRING004, 1, 2
  208.         FPutLn 1, STRING009, "3 at ", TimeAp(Time()), " on ", Date(), "."
  209.         FClose 1
  210.         Goto LABEL033
  211.         :LABEL005
  212.         INTEGER006 = GetY()
  213.         Select Case (INTEGER006)
  214.             Case 3
  215.                 Cls
  216.                 Goto LABEL022
  217.             Case 4
  218.                 Cls
  219.                 If (STRING016 <> "") Then
  220.                     Print "@X0EPlease enter password? "
  221.                     InputText "_", STRING018, 14, 20
  222.                     If (STRING018 == STRING016) Then
  223.                         Goto LABEL006
  224.                         Goto LABEL006
  225.                     Endif
  226.                     Newlines 2
  227.                     PrintLn "@X0CWrong Password!"
  228.                     Delay 80
  229.                     FAppend 1, STRING004, 1, 2
  230.                     FPutLn 1, "Entered wrong password when tring to edit teachers."
  231.                     FClose 1
  232.                     Log "Entered wrong password when tring to edit teachers.", 0
  233.                     End
  234.                 Endif
  235.                 :LABEL006
  236.                 If (OnLocal()) Then
  237.                     Goto LABEL007
  238.                 Else
  239.                     Cls
  240.                     PrintLn "@X0CSorry, ", Mixed(UN_Name()), ", but you can't edit the teacher files from a remote computer."
  241.                     FAppend 1, STRING013, 1, 2
  242.                     FPutLn 1, "Tried to edit the teacher files from a remote computer."
  243.                     FClose 1
  244.                     Log "Tried to edit the teacher files from a remote computer.", 0
  245.                     Newline
  246.                     Wait
  247.                     Goto LABEL001
  248.                 Endif
  249.             Case 5
  250.                 Goto LABEL033
  251.         End Select
  252.         FAppend 1, STRING004, 1, 2
  253.         FPutLn 1, STRING009, "4 at ", TimeAp(Time()), " on ", Date(), "."
  254.         FClose 1
  255.         Goto LABEL033
  256.         :LABEL007
  257.         Cls
  258.         INTEGER002 = 1
  259.         INTEGER003 = 1
  260.         INTEGER004 = 1
  261.         INTEGER007 = 16
  262.         While (INTEGER002 < INTEGER007) Do
  263.             AnsiPos INTEGER003, INTEGER004
  264.             Print " @X0F ", Right(INTEGER002, 2), ". - @X0E", TSTRING029(INTEGER002), "    "
  265.             Inc INTEGER002
  266.             Inc INTEGER004
  267.         EndWhile
  268.         AnsiPos 1, 17
  269.         PrintLn "@X0A(@X0E@X0A) or (@X0EU@X0A) to move up      (@X0E@X0A) or (@X0ED@X0A) to move down      (@X0EENTER@X0A) to select@X07"
  270.         PrintLn "@X0A(@X0EQ@X0A) or (@X0EESC@X0A) to exit       (@X0EE@X0A) to enter the Homework program@X07"
  271.         PrintLn "@X0A(@X0ES@X0A) set all files the same (@X0ER@X0A) to reset all the files@X07"
  272.         INTEGER005 = 1
  273.         Goto LABEL009
  274.         FAppend 1, STRING004, 1, 2
  275.         FPutLn 1, STRING009, "5 at ", TimeAp(Time()), " on ", Date(), "."
  276.         FClose 1
  277.         Goto LABEL033
  278.         :LABEL008
  279.         STRING010 = ""
  280.         While (STRING010 == "") Do
  281.             STRING010 = TInkey(0)
  282.         EndWhile
  283.         If ((Upper(STRING010) == "U") || (STRING010 == "UP")) Then
  284.             Goto LABEL020
  285.         ElseIf ((Upper(STRING010) == "D") || (STRING010 == "DOWN")) Then
  286.             Goto LABEL021
  287.         Else
  288.             Select Case (Upper(STRING010))
  289.                 Case "S"
  290.                     Goto LABEL010
  291.                 Case "R"
  292.                     Goto LABEL014
  293.                 Case "A"
  294.                     Goto LABEL019
  295.                 Case Chr(13)
  296.                     Goto LABEL015
  297.                 Case "E"
  298.                     Cls
  299.                     Goto LABEL022
  300.                 Case "Q", Chr(27)
  301.                     Cls
  302.                     Goto LABEL033
  303.                 Case Else
  304.                     Goto LABEL008
  305.                 Endif
  306.         End Select
  307.         FAppend 1, STRING004, 1, 2
  308.         FPutLn 1, STRING009, "6 at ", TimeAp(Time()), " on ", Date(), "."
  309.         FClose 1
  310.         Goto LABEL033
  311.         :LABEL009
  312.         AnsiPos 1, 1
  313.         STRING015 = ScrText(2, GetY(), 39, 0)
  314.         STRING014 = ScrText(2, 2, 39, 0)
  315.         Print "@X0E@X3E", Left(STRING015, 6), "@X3F", Right(STRING015, 33), "@X0E@X07"
  316.         Goto LABEL008
  317.         FAppend 1, STRING004, 1, 2
  318.         FPutLn 1, STRING009, "7 at ", TimeAp(Time()), " on ", Date(), "."
  319.         FClose 1
  320.         Goto LABEL033
  321.         :LABEL010
  322.         INTEGER005 = GetX()
  323.         INTEGER006 = GetY()
  324.         AnsiPos 1, 21
  325.         SaveScrn
  326.         :LABEL011
  327.         Cls
  328.         STRING022 = ""
  329.         PrintLn "@X3E In the space below type what you want to put in ALL your teacher files. @X07"
  330.         PrintLn "@X30 @X07                                                                       @X30 @X07"
  331.         PrintLn "@X3E Blank line quits                                                        @X07"
  332.         AnsiPos 2, 2
  333.         InputText "_", STRING022, 15, 71
  334.         If (STRING022 == "") Then
  335.             RestScrn
  336.             AnsiPos INTEGER005, INTEGER006
  337.             Goto LABEL008
  338.         Endif
  339.         AnsiPos 1, 5
  340.         PrintLn "@X3E Now what color do you want your text to be: @X07"
  341.         PrintLn "@X30 @X0F1 = @X01Dk. Blue              @X0F12 = @X0CRed         @X30 @X07"
  342.         PrintLn "@X30 @X0F2 = @X02Dk. Green             @X0F13 = @X0DMagenta     @X30 @X07"
  343.         PrintLn "@X30 @X0F3 = @X03Dk. Cyan              @X0F14 = @X0EYellow      @X30 @X07"
  344.         PrintLn "@X30 @X0F4 = @X04Dk. Red               @X0F15 = @X0FWhite       @X30 @X07"
  345.         PrintLn "@X30 @X0F5 = @X05Dk. Magenta           @X0F16 = @X89Bl. Blue    @X30 @X07"
  346.         PrintLn "@X30 @X0F6 = @X06Dk. Yellow            @X0F17 = @X8ABl. Green   @X30 @X07"
  347.         PrintLn "@X30 @X0F7 = @X07Dk. White             @X0F18 = @X8BBl. Cyan    @X30 @X07"
  348.         PrintLn "@X30 @X0F8 = @X08Gray                  @X0F19 = @X8CBl. Red     @X30 @X07"
  349.         PrintLn "@X30 @X0F9 = @X09Blue                  @X0F20 = @X8DBl. Magenta @X30 @X07"
  350.         PrintLn "@X30 @X0F10 = @X0AGreen                @X0F21 = @X8EBl. Yellow  @X30 @X07"
  351.         PrintLn "@X30 @X0F11 = @X0BCyan                 @X0F22 = @X8FBl. White   @X30 @X07"
  352.         PrintLn "@X30                                             @X07"
  353.         PrintLn "@X30 @X07  @X3E Put your color number here.             @X07"
  354.         PrintLn "@X30                                             @X07"
  355.         AnsiPos 2, 18
  356.         :LABEL012
  357.         InputText "_", STRING023, 15, 2
  358.         Select Case (STRING023)
  359.             Case 1
  360.                 STRING023 = "@X01"
  361.             Case 2
  362.                 STRING023 = "@X02"
  363.             Case 3
  364.                 STRING023 = "@X03"
  365.             Case 4
  366.                 STRING023 = "@X04"
  367.             Case 5
  368.                 STRING023 = "@X05"
  369.             Case 6
  370.                 STRING023 = "@X06"
  371.             Case 7
  372.                 STRING023 = "@X07"
  373.             Case 8
  374.                 STRING023 = "@X08"
  375.             Case 9
  376.                 STRING023 = "@X09"
  377.             Case 10
  378.                 STRING023 = "@X0A"
  379.             Case 11
  380.                 STRING023 = "@X0B"
  381.             Case 12
  382.                 STRING023 = "@X0C"
  383.             Case 13
  384.                 STRING023 = "@X0D"
  385.             Case 14
  386.                 STRING023 = "@X0E"
  387.             Case 15
  388.                 STRING023 = "@X0F"
  389.             Case 16
  390.                 STRING023 = "@X89"
  391.             Case 17
  392.                 STRING023 = "@X8A"
  393.             Case 18
  394.                 STRING023 = "@X8B"
  395.             Case 19
  396.                 STRING023 = "@X8C"
  397.             Case 20
  398.                 STRING023 = "@X8D"
  399.             Case 21
  400.                 STRING023 = "@X8E"
  401.             Case 22
  402.                 STRING023 = "@X8F"
  403.             Case Else
  404.                 Goto LABEL012
  405.         End Select
  406.         AnsiPos 1, 21
  407.         PrintLn STRING023 + STRING022
  408.         STRING005 = "Y"
  409.         InputYN "Is this correct? (Y/n) _", STRING005, 62
  410.         If (STRING005 == NoChar()) Then
  411.             Goto LABEL011
  412.         Else
  413.             Goto LABEL013
  414.         Endif
  415.         FAppend 1, STRING004, 1, 2
  416.         FPutLn 1, STRING009 + "10 at " + TimeAp(Time()) + " on " + Date() + "."
  417.         FClose 1
  418.         Goto LABEL033
  419.         :LABEL013
  420.         Cls
  421.         INTEGER008 = 1
  422.         PrintLn "@X0AWorking...@X07"
  423.         While (INTEGER008 < INTEGER001 + 1) Do
  424.             Delete TSTRING027(INTEGER008)
  425.             FCreate 1, TSTRING027(INTEGER008), 1, 0
  426.             FPutLn 1, STRING023 + STRING022 + "@X07"
  427.             FClose 1
  428.             Inc INTEGER008
  429.         EndWhile
  430.         RestScrn
  431.         AnsiPos INTEGER005, INTEGER006
  432.         Goto LABEL008
  433.         FAppend 1, STRING004, 1, 2
  434.         FPutLn 1, STRING009, "11 at ", TimeAp(Time()), " on ", Date(), "."
  435.         FClose 1
  436.         Goto LABEL033
  437.         :LABEL014
  438.         INTEGER005 = GetX()
  439.         INTEGER006 = GetY()
  440.         AnsiPos 1, 21
  441.         SaveScrn
  442.         Cls
  443.         STRING007 = "N"
  444.         PrintLn "@X0AYou are about to delete all of the information in all of your teacher files.@X07"
  445.         InputYN "Are you sure you want to do this? (Y/n) _", STRING007, 14
  446.         If (STRING007 == NoChar()) Then
  447.             RestScrn
  448.             AnsiPos INTEGER005, INTEGER006
  449.             Goto LABEL008
  450.         Else
  451.             STRING023 = ""
  452.             STRING022 = ""
  453.             Goto LABEL013
  454.         Endif
  455.         FAppend 1, STRING004, 1, 2
  456.         FPutLn 1, STRING009, "12 at ", TimeAp(Time()), " on ", Date(), "."
  457.         FClose 1
  458.         Goto LABEL033
  459.         :LABEL015
  460.         STRING010 = ScrText(GetX() - 40, GetY(), 4, 0)
  461.         If (ScrText(GetX() - 32, GetY(), 5, 0) == "     ") Then
  462.             Goto LABEL008
  463.         Endif
  464.         INTEGER005 = GetX()
  465.         INTEGER006 = GetY()
  466.         AnsiPos 1, 21
  467.         SaveScrn
  468.         Cls
  469.         PrintLn "@X0AYou have selected ", TSTRING029(STRING010), "."
  470.         Newlines 2
  471.         PrintLn "@X0A(@X0EE@X0A)dit homework file  (@X0EA@X0A)ttach a download file"
  472.         PrintLn "@X0A(@X0EQ@X0A)uit to main menu"
  473.         :LABEL016
  474.         STRING008 = ""
  475.         While (STRING008 == "") Do
  476.             STRING008 = TInkey(0)
  477.         EndWhile
  478.         Select Case (Upper(STRING008))
  479.             Case "E"
  480.                 Goto LABEL017
  481.             Case "A"
  482.                 Goto LABEL019
  483.             Case "Q"
  484.                 Goto LABEL018
  485.             Case Else
  486.                 Goto LABEL016
  487.         End Select
  488.         :LABEL017
  489.         STRING010 = Strip(STRING010, " ")
  490.         Shell 1, STRING019, "PCBEDIT", TSTRING027(STRING010)
  491.         :LABEL018
  492.         RestScrn
  493.         AnsiPos INTEGER005, INTEGER006
  494.         Goto LABEL008
  495.         :LABEL019
  496.         Cls
  497.         PrintLn "Teacher's Name: @X0E", TSTRING029(STRING010)
  498.         PrintLn "@X0ACurrent Attached File: @X0E", TSTRING030(STRING010)
  499.         Newlines 2
  500.         PrintLn "@X0AEnter the full path and file name to new attached file (Blank Line Quits):"
  501.         InputText "_", TSTRING030(STRING010), 10, 79
  502.         Newlines 2
  503.         PrintLn "@X0AWorking..."
  504.         Delete PPEPath() + "TEACHERS.CFG"
  505.         FCreate 2, STRING003, 1, 2
  506.         FPutLn 2, INTEGER001
  507.         INTEGER008 = 1
  508.         While (INTEGER008 < INTEGER001 + 1) Do
  509.             FPutLn 2, TSTRING029(INTEGER008)
  510.             FPutLn 2, TSTRING027(INTEGER008)
  511.             FPutLn 2, TSTRING028(INTEGER008)
  512.             FPutLn 2, TSTRING026(INTEGER008)
  513.             FPutLn 2, TSTRING030(INTEGER008)
  514.             Inc INTEGER008
  515.         EndWhile
  516.         FClose 2
  517.         Newline
  518.         PrintLn "Finished updating files."
  519.         Wait
  520.         RestScrn
  521.         AnsiPos INTEGER005, INTEGER006
  522.         Goto LABEL008
  523.         FAppend 1, STRING004, 1, 2
  524.         FPutLn 1, STRING009, "13 at ", TimeAp(Time()), " on ", Date(), "."
  525.         FClose 1
  526.         Goto LABEL033
  527.         :LABEL020
  528.         INTEGER005 = GetX()
  529.         INTEGER006 = GetY()
  530.         Select Case (INTEGER006)
  531.             Case 1
  532.                 STRING015 = ScrText(2, 1, 39, 0)
  533.                 STRING014 = ScrText(2, 15, 39, 0)
  534.                 AnsiPos 1, 1
  535.                 Print " @X0F", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
  536.                 AnsiPos 1, 15
  537.                 Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
  538.                 Goto LABEL008
  539.             Case 15
  540.                 STRING015 = ScrText(2, 15, 39, 0)
  541.                 STRING014 = ScrText(2, 14, 39, 0)
  542.                 AnsiPos 1, 15
  543.                 Print "@X0F ", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
  544.                 AnsiPos 1, 14
  545.                 Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
  546.                 Goto LABEL008
  547.             Case 15, 1
  548.                 STRING015 = ScrText(2, INTEGER006, 39, 0)
  549.                 STRING014 = ScrText(2, INTEGER006 - 1, 39, 0)
  550.                 AnsiPos 1, INTEGER006
  551.                 Print "@X0F ", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
  552.                 AnsiPos 1, INTEGER006 - 1
  553.                 Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
  554.                 Goto LABEL008
  555.         End Select
  556.         FAppend 1, STRING004, 1, 2
  557.         FPutLn 1, STRING009, "14 at ", TimeAp(Time()), " on ", Date(), "."
  558.         FClose 1
  559.         :LABEL021
  560.         INTEGER006 = GetY()
  561.         INTEGER005 = GetX()
  562.         If (INTEGER006 == 15) Then
  563.             STRING015 = ScrText(2, INTEGER006, 39, 0)
  564.             STRING014 = ScrText(2, 1, 39, 0)
  565.             AnsiPos 1, 15
  566.             Print " @X0F", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
  567.             AnsiPos 1, 1
  568.             Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
  569.             Goto LABEL008
  570.         ElseIf (INTEGER005 >= 1) Then
  571.             STRING015 = ScrText(2, INTEGER006, 39, 0)
  572.             STRING014 = ScrText(2, INTEGER006 + 1, 39, 0)
  573.             AnsiPos 1, INTEGER006
  574.             Print " @X0F", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
  575.             AnsiPos 1, INTEGER006 + 1
  576.             Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
  577.             Goto LABEL008
  578.         Endif
  579.         FAppend 1, STRING004, 1, 2
  580.         FPutLn 1, STRING009, "15 at ", TimeAp(Time()), " on ", Date(), "."
  581.         FClose 1
  582.     Else
  583.         :LABEL022
  584.         If (CurSec() == STRING025) Then
  585.             Newline
  586.             PrintLn "@X0ETesting..."
  587.             Delay 20
  588.         Endif
  589.         If (Exist(STRING001)) Then
  590.             Goto LABEL023
  591.         Endif
  592.         If (CurSec() == STRING025) Then
  593.             Newline
  594.             PrintLn "@X0CFAILED 1"
  595.             Newline
  596.         Endif
  597.         PrintLn "@X0CThe homework.cfg file is missing."
  598.         Newline
  599.         Wait
  600.         Goto LABEL035
  601.         FAppend 1, STRING004, 1, 2
  602.         FPutLn 1, STRING009, "16 at ", TimeAp(Time()), " on ", Date(), "."
  603.         FClose 1
  604.         Goto LABEL033
  605.         :LABEL023
  606.         If (CurSec() == STRING025) Then
  607.             Newline
  608.             PrintLn "@X0APASS 1"
  609.             Delay 15
  610.         Endif
  611.         If (CurSec() == STRING025) Then
  612.             Newline
  613.             PrintLn "@X0APASS 2"
  614.             Delay 15
  615.         Endif
  616.         Goto LABEL024
  617.         If (CurSec() == STRING025) Then
  618.             Newline
  619.             PrintLn "@X0CFAILED 2b"
  620.             Newline
  621.             Wait
  622.             Goto LABEL035
  623.         Endif
  624.         FAppend 1, STRING004, 1, 2
  625.         FPutLn 1, STRING009, "17 at ", TimeAp(Time()), " on ", Date(), "."
  626.         FClose 1
  627.         Goto LABEL033
  628.         :LABEL024
  629.         If (STRING017 <> "") Then
  630.             If (CurSec() == STRING025) Then
  631.                 Newline
  632.                 PrintLn "@X0EWARNING 3"
  633.                 Delay 15
  634.                 Newline
  635.                 PrintLn "@X0CYou have more than 15 teachers.  This version can only handle"
  636.                 PrintLn "15.  Any others that are above 15 will not be shown."
  637.                 Delay 150
  638.             Else
  639.                 If (CurSec() == STRING025) Then
  640.                     Newline
  641.                     PrintLn "@X0APASS 3"
  642.                     Delay 15
  643.                 Endif
  644.                 Goto LABEL025
  645.                 PrintLn "@X0CFAILED 3"
  646.                 Newline
  647.                 Wait
  648.                 Goto LABEL035
  649.                 FAppend 1, STRING004, 1, 2
  650.                 FPutLn 1, STRING009, "18 at ", TimeAp(Time()), " on ", Date(), "."
  651.                 FClose 1
  652.                 Goto LABEL033
  653.             Endif
  654.         Endif
  655.         :LABEL025
  656.         Cls
  657.         Goto LABEL026
  658.         If (CurSec() == STRING025) Then
  659.             Newline
  660.             PrintLn "@X0CFAILED 3b"
  661.             Newline
  662.             Wait
  663.         Endif
  664.         Cls
  665.         Newlines 10
  666.         FAppend 1, STRING004, 1, 2
  667.         FPutLn 1, "Error in initialization at ", TimeAp(Time()), " on ", Date(), "."
  668.         FClose 1
  669.         PrintLn "@X0C@POS:36@ERROR!"
  670.         Newlines 10
  671.         Delay 75
  672.         If (CurSec() == STRING025) Then
  673.             Newline
  674.             PrintLn "@X0CFAILED 3c"
  675.             Newline
  676.             Wait
  677.             Goto LABEL035
  678.         Endif
  679.         :LABEL026
  680.         Cls
  681.         If (INTEGER001 == 0) Then
  682.             PrintLn "@X0ESorry, but there are no teachers available."
  683.             Newline
  684.             Wait
  685.             FAppend 1, STRING004, 1, 2
  686.             FPutLn 1, "Sorry, there are no teachers at ", TimeAp(Time()), " on ", Date(), "."
  687.             FClose 1
  688.             Goto LABEL035
  689.         Endif
  690.         If (Exist(PPEPath() + "INTRO")) Then
  691.             DispFile PPEPath() + "INTRO", 2 + 1 + 4
  692.         Endif
  693.         INTEGER002 = 1
  694.         INTEGER003 = 1
  695.         INTEGER004 = 5
  696.         INTEGER007 = 16
  697.         Cls
  698.         PrintLn "@POS:15@@X3F┌─────────────────────────────────────────────────@X30┐@X07"
  699.         PrintLn "@POS:15@@X3F│                  Homework v2.0                  @X30│@X07"
  700.         PrintLn "@POS:15@@X3F└@X30─────────────────────────────────────────────────┘@X07"
  701.         Newline
  702.         While (INTEGER002 < INTEGER007) Do
  703.             AnsiPos GetX() - 38, INTEGER004
  704.             Print "   @X0F", Right(INTEGER002, 2), ". - @X0E", TSTRING029(INTEGER002), "   @X07"
  705.             Inc INTEGER002
  706.             Inc INTEGER004
  707.         EndWhile
  708.         AnsiPos 1, 21
  709.         PrintLn "@X0A(@X0E@X0A) or (@X0EU@X0A) to move up        (@X0E@X0A) or (@X0ED@X0A) to move down         (@X0EENTER@X0A) to select@X07"
  710.         PrintLn "@X0A(@X0EQ@X0A) or (@X0EESC@X0A) to exit   (@X0EH@X0A) or (@X0E?@X0A) Help@X07"
  711.         INTEGER005 = 1
  712.         Goto LABEL028
  713.         FAppend 1, STRING004, 1, 2
  714.         FPutLn 1, STRING009, "19 at ", TimeAp(Time()), " on ", Date(), "."
  715.         FClose 1
  716.         Goto LABEL033
  717.         :LABEL027
  718.         STRING010 = ""
  719.         While (STRING010 == "") Do
  720.             STRING010 = TInkey(0)
  721.         EndWhile
  722.         If (((Upper(STRING010) == "U") || (STRING010 == "u")) || (STRING010 == "UP")) Then
  723.             Goto LABEL030
  724.         ElseIf ((Upper(STRING010) == "D") || (STRING010 == "DOWN")) Then
  725.             Goto LABEL031
  726.         ElseIf ((Upper(STRING010) == "H") || (STRING010 == "?")) Then
  727.             Goto LABEL032
  728.         ElseIf (STRING010 == Chr(13)) Then
  729.             Goto LABEL029
  730.         ElseIf ((Upper(STRING010) == "Q") || (STRING010 == Chr(27))) Then
  731.             Goto LABEL033
  732.         Else
  733.             Goto LABEL027
  734.         Endif
  735.         FAppend 1, STRING004, 1, 2
  736.         FPutLn 1, STRING009, "20 at ", TimeAp(Time()), " on ", Date(), "."
  737.         FClose 1
  738.         Goto LABEL033
  739.         :LABEL028
  740.         AnsiPos 1, 5
  741.         STRING015 = ScrText(2, GetY(), 39, 0)
  742.         STRING014 = ScrText(2, 2, 39, 0)
  743.         Print "@X0E@X3E", Left(STRING015, 6), "@X3F", Right(STRING015, 33), "@X0E@X07"
  744.         Goto LABEL027
  745.         FAppend 1, STRING004, 1, 2
  746.         FPutLn 1, STRING009, "21 at ", TimeAp(Time()), " on ", Date(), "."
  747.         FClose 1
  748.         Goto LABEL033
  749.         :LABEL029
  750.         STRING010 = ScrText(GetX() - 40, GetY(), 4, 0)
  751.         If (ScrText(GetX() - 32, GetY(), 5, 0) == "     ") Then
  752.             Goto LABEL027
  753.         Endif
  754.         STRING010 = Strip(STRING010, " ")
  755.         INTEGER005 = GetX()
  756.         INTEGER006 = GetY()
  757.         AnsiPos 1, 22
  758.         SaveScrn
  759.         Cls
  760.         If (Exist(TSTRING026(STRING010))) Then
  761.             DispFile TSTRING026(STRING010), 2 + 1 + 4
  762.             Newline
  763.             Wait
  764.             Cls
  765.         Endif
  766.         PrintLn STRING011 + TSTRING029(STRING010)
  767.         PrintLn STRING012, "", FileInf(TSTRING027(STRING010), 2), " @X0Eat @X0A", TimeAp(FileInf(TSTRING027(STRING010), 3))
  768.         PrintLn STRING024 + TSTRING028(STRING010)
  769.         Newline
  770.         DispFile TSTRING027(STRING010), 2 + 1 + 4
  771.         Newline
  772.         If (Exist(TSTRING030(STRING010))) Then
  773.             STRING002 = "N"
  774.             Beep
  775.             InputText "There is a file attached. Flag for download? (N/y)_", STRING002, 10, 1
  776.             Newlines 2
  777.             If (Upper(STRING002) == "Y") Then
  778.                 Flag TSTRING030(STRING010)
  779.                 PrintLn "@X0EFile has been flaged for download.  When you leave the Homework program"
  780.                 PrintLn "you will have an option to download it then."
  781.                 Newline
  782.             Endif
  783.         Endif
  784.         Wait
  785.         Cls
  786.         RestScrn
  787.         AnsiPos INTEGER005, INTEGER006
  788.         Goto LABEL027
  789.         FAppend 1, STRING004, 1, 2
  790.         FPutLn 1, STRING009, "24 at ", TimeAp(Time()), " on ", Date(), "."
  791.         FClose 1
  792.         Goto LABEL033
  793.         :LABEL030
  794.         INTEGER005 = GetX()
  795.         INTEGER006 = GetY()
  796.         Select Case (INTEGER006)
  797.             Case 5
  798.                 STRING015 = ScrText(2, 5, 39, 0)
  799.                 STRING014 = ScrText(2, 19, 39, 0)
  800.                 AnsiPos 1, 5
  801.                 Print " @X0F", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
  802.                 AnsiPos 1, 19
  803.                 Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
  804.                 Goto LABEL027
  805.             Case 20
  806.                 STRING015 = ScrText(2, 20, 39, 0)
  807.                 STRING014 = ScrText(2, 19, 39, 0)
  808.                 AnsiPos 1, 20
  809.                 Print "@X0F ", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
  810.                 AnsiPos 1, 19
  811.                 Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
  812.                 Goto LABEL027
  813.             Case 20, 5
  814.                 STRING015 = ScrText(2, INTEGER006, 39, 0)
  815.                 STRING014 = ScrText(2, INTEGER006 - 1, 39, 0)
  816.                 AnsiPos 1, INTEGER006
  817.                 Print "@X0F ", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
  818.                 AnsiPos 1, INTEGER006 - 1
  819.                 Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
  820.                 Goto LABEL027
  821.         End Select
  822.         FAppend 1, STRING004, 1, 2
  823.         FPutLn 1, STRING009, "25 at ", TimeAp(Time()), " on ", Date(), "."
  824.         FClose 1
  825.         Goto LABEL033
  826.         :LABEL031
  827.         INTEGER006 = GetY()
  828.         INTEGER005 = GetX()
  829.         If (INTEGER006 == 19) Then
  830.             STRING015 = ScrText(2, INTEGER006, 39, 0)
  831.             STRING014 = ScrText(2, 5, 39, 0)
  832.             AnsiPos 1, 19
  833.             Print " @X0F", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
  834.             AnsiPos 1, 5
  835.             Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
  836.             Goto LABEL027
  837.         ElseIf (INTEGER005 >= 5) Then
  838.             STRING015 = ScrText(2, INTEGER006, 39, 0)
  839.             STRING014 = ScrText(2, INTEGER006 + 1, 39, 0)
  840.             AnsiPos 1, INTEGER006
  841.             Print " @X0F", Left(STRING015, 7), "@X0E", Right(STRING015, 32), "@X07 "
  842.             AnsiPos 1, INTEGER006 + 1
  843.             Print "@X0E@X3E", Left(STRING014, 7), "@X3F", Right(STRING014, 32), "@X0E@X07"
  844.             Goto LABEL027
  845.         Endif
  846.         FAppend 1, STRING004, 1, 2
  847.         FPutLn 1, STRING009, "26 at ", TimeAp(Time()), " on ", Date(), "."
  848.         FClose 1
  849.         Goto LABEL033
  850.         :LABEL032
  851.         INTEGER005 = GetX()
  852.         INTEGER006 = GetY()
  853.         Call PPEPath() + "HELP.PPE"
  854.         AnsiPos INTEGER005, INTEGER006
  855.         Goto LABEL027
  856.         FAppend 1, STRING004, 1, 2
  857.         FPutLn 1, STRING009, "27 at ", TimeAp(Time()), " on ", Date(), "."
  858.         FClose 1
  859.         Goto LABEL033
  860.     Endif
  861.     :LABEL033
  862.     If (FlagCnt() > 0) Then
  863.         Cls
  864.         AnsiPos 1, 20
  865.         SaveScrn
  866.         AnsiPos 20, 3
  867.         PrintLn "@X10┌─────────────────────────────────────────@X1F┐@X07"
  868.         AnsiPos 20, 4
  869.         PrintLn "@X10│@X1BYou have ", FlagCnt(), " file(s) flagged for download.@X1F@POS:62@│@X07"
  870.         AnsiPos 20, 5
  871.         PrintLn "@X10│@X1BDo you want to download them now? (Y,n)  @X1F│@X07"
  872.         AnsiPos 20, 6
  873.         PrintLn "@X10└@X1F─────────────────────────────────────────┘@X07"
  874.         AnsiPos 1, 23
  875.         STRING010 = ""
  876.         While (STRING010 == "") Do
  877.             STRING010 = TInkey(0)
  878.         EndWhile
  879.         If ((STRING010 == "N") || (STRING010 == "n")) Then
  880.             AnsiPos 20, 10
  881.             PrintLn "@X10┌────────────────────────────────────────@X1F┐@X07"
  882.             AnsiPos 20, 11
  883.             PrintLn "@X10│@X1BYou can still download the file(s) later@X1F│@X07"
  884.             AnsiPos 20, 12
  885.             PrintLn "@X10│@X1Bby typing 'D' at the BBS main menu.     @X1F│@X07"
  886.             AnsiPos 20, 13
  887.             PrintLn "@X10│@X1BPress (Enter) To Continue               │@X07"
  888.             AnsiPos 20, 14
  889.             PrintLn "@X10└@X1F────────────────────────────────────────┘@X07"
  890.             AnsiPos 1, 23
  891.             STRING010 = ""
  892.             While (STRING010 == "") Do
  893.                 STRING010 = TInkey(0)
  894.             EndWhile
  895.             Goto LABEL034
  896.             Goto LABEL034
  897.         Endif
  898.         Cls
  899.         Download ""
  900.     Endif
  901.     :LABEL034
  902.     Cls
  903.     STRING021 = "Exited Homework at " + TimeAp(Time()) + "."
  904.     Log STRING021, 0
  905.     FAppend 1, STRING013, 1, 2
  906.     FPutLn 1, "Left at ", TimeAp(Time()), "."
  907.     FClose 1
  908.     :LABEL035
  909.     Cls
  910.     If (CurSec() == STRING025) Then
  911.         Newline
  912.         PrintLn "@X0APass 4"
  913.         Delay 15
  914.     Endif
  915.     End
  916.     If (CurSec() == STRING025) Then
  917.         Newline
  918.         PrintLn "@X0CFAILED 4"
  919.         Delay 15
  920.     Endif
  921.     FAppend 1, STRING004, 1, 2
  922.     FPutLn 1, STRING009, "28 at ", TimeAp(Time()), " on ", Date(), "."
  923.     FClose 1
  924.     End
  925.  
  926. ;------------------------------------------------------------------------------
  927. ;
  928. ; Usage report (before postprocessing)
  929. ;
  930. ; ■ Statements used :
  931. ;
  932. ;    4       End
  933. ;    26      Cls
  934. ;    12      Wait
  935. ;    267     Goto 
  936. ;    123     Let 
  937. ;    39      Print 
  938. ;    96      PrintLn 
  939. ;    102     If 
  940. ;    3       DispFile 
  941. ;    2       FCreate 
  942. ;    30      FAppend 
  943. ;    32      FClose 
  944. ;    38      FPutLn 
  945. ;    2       Delete 
  946. ;    4       Log 
  947. ;    2       InputYN 
  948. ;    10      Delay 
  949. ;    12      Inc 
  950. ;    29      Newline
  951. ;    8       Newlines 
  952. ;    1       Shell 
  953. ;    5       InputText 
  954. ;    1       Beep
  955. ;    1       Call 
  956. ;    66      AnsiPos 
  957. ;    5       SaveScrn
  958. ;    6       RestScrn
  959. ;    1       Flag 
  960. ;    1       Download 
  961. ;
  962. ;
  963. ; ■ Functions used :
  964. ;
  965. ;    34      +
  966. ;    9       -
  967. ;    96      ==
  968. ;    2       <>
  969. ;    8       <
  970. ;    2       >
  971. ;    4       >=
  972. ;    102     !
  973. ;    2       &&
  974. ;    13      ||
  975. ;    18      Upper()
  976. ;    22      Left()
  977. ;    26      Right()
  978. ;    6       Chr()
  979. ;    30      Date()
  980. ;    30      Time()
  981. ;    1       U_Name()
  982. ;    31      TimeAp()
  983. ;    2       NoChar()
  984. ;    2       Strip()
  985. ;    8       PPEPath()
  986. ;    9       ReadLine()
  987. ;    1       OnLocal()
  988. ;    1       UN_Name()
  989. ;    12      CurSec()
  990. ;    4       Exist()
  991. ;    14      GetX()
  992. ;    18      GetY()
  993. ;    2       FileInf()
  994. ;    28      ScrText()
  995. ;    2       Mixed()
  996. ;    2       FlagCnt()
  997. ;    6       TInkey()
  998. ;
  999. ;------------------------------------------------------------------------------
  1000. ;
  1001. ; Analysis flags : SCf
  1002. ;
  1003. ; S - Shell to DOS ■ 5
  1004. ;     This may be normal if the PPE need to execute an external command,
  1005. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  1006. ;     or usefull (sorting, maintenance,...). Check!
  1007. ;     ■ Search for : SHELL
  1008. ;
  1009. ; C - Call child PPE ■ 3
  1010. ;     This is usually normal, but may be a tricky way to launch some
  1011. ;     sysop-only commands.
  1012. ;     ■ Search for : CALL
  1013. ;
  1014. ; f - Flag files for download ■ 3
  1015. ;     This may be normal if a PPE needs to send some files, but since
  1016. ;     this statement allows flagging of any file on the hard disk, you
  1017. ;     have to be carefull. Check!
  1018. ;     ■ Search for : FLAG
  1019. ;
  1020. ;------------------------------------------------------------------------------
  1021. ;
  1022. ; Postprocessing report
  1023. ;
  1024. ;    0       For/Next
  1025. ;    11      While/EndWhile
  1026. ;    45      If/Then or If/Then/Else
  1027. ;    8       Select Case
  1028. ;
  1029. ;------------------------------------------------------------------------------
  1030. ;                 AEGiS Corp - Break the routines, code against the machines!
  1031. ;------------------------------------------------------------------------------
  1032.